/***************************************************************************/
/* Procedimiento:  PesajeAduanaInsertar
/* Descripcion:   Insertar o Modifica una fila en la tabla PesajeAduana
/* Parametros:    ?InfoParametros
/*                pTransaccion. Numero identificador de la Transaccion
/*                pMensaje. Mensaje de comfirmacion o excepcion
/* Comentarios:         
/****************************************************************************/

PROCEDURE  PesajeAduanaInsertarModificar(pfolio_autoriza VARCHAR2, pnum_oficio VARCHAR2, ppatente VARCHAR2, 
								ppedimento VARCHAR2, pclave_recinto VARCHAR2, ptipo_mercancia VARCHAR2, 
								pumt NUMBER, pcs_autorizadas NUMBER, pvid NUMBER, 
								ppeso_pedimento NUMBER, pcs_termino NUMBER, peta VARCHAR2, 
								pfecha_registro VARCHAR2, pfecha_registro_autoriza VARCHAR2, pfecha_registro_cierre VARCHAR2, 
								pfecha_cierre VARCHAR2, pfecha_pago VARCHAR2, pfecha_autorizacion VARCHAR2, 
								pfecha_termino VARCHAR2, pstatus VARCHAR2, pexcedente VARCHAR2, 
								penvio VARCHAR2, pfraccion VARCHAR2, prfc_impo_expo VARCHAR2, 
								pbl VARCHAR2, pusuario_autorizo VARCHAR2, pusuario_cierre VARCHAR2, 
								pnumero_buzon_cierre VARCHAR2, pbuque VARCHAR2, ppuerto_origen_destino VARCHAR2, 
								pnombre_impo_expo VARCHAR2, pdesc_mercancia VARCHAR2, pobservaciones VARCHAR2, 
								 pTransaccion OUT NUMBER, pMensaje OUT VARCHAR2)
AS
vExisteRegistro NUMBER(1);
BEGIN
  SELECT count(*)
  INTO   vExisteRegistro
  FROM   PesajeAduana
  WHERE  nidDocumento=pNidDocumento;
  
  IF vExisteRegistro=0 THEN
    INSERT INTO PesajeAduana
	           (nid, folio_autoriza, num_oficio, 
				patente, pedimento, clave_recinto, 
				tipo_mercancia, umt, cs_autorizadas, 
				vid, peso_pedimento, cs_termino, 
				eta, fecha_registro, fecha_registro_autoriza, 
				fecha_registro_cierre, fecha_cierre, fecha_pago, 
				fecha_autorizacion, fecha_termino, status, 
				excedente, envio, fraccion, 
				rfc_impo_expo, bl, usuario_autorizo, 
				usuario_cierre, numero_buzon_cierre, buque, 
				puerto_origen_destino, nombre_impo_expo, desc_mercancia, 
				observaciones)
    VALUES     (seq_PesajeAduana.nextval, pfolio_autoriza, pnum_oficio, 
				ppatente, ppedimento, pclave_recinto, 
				ptipo_mercancia, pumt, pcs_autorizadas, 
				pvid, ppeso_pedimento, pcs_termino, 
				to_date(peta,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_registro,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_registro_autoriza,'DD/MM/YYYY HH24:MI:SS'), 
				to_date(pfecha_registro_cierre,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_cierre,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_pago,'DD/MM/YYYY HH24:MI:SS'), 
				to_date(pfecha_autorizacion,'DD/MM/YYYY HH24:MI:SS'), to_date(pfecha_termino,'DD/MM/YYYY HH24:MI:SS'), pstatus, 
				pexcedente, penvio, pfraccion, 
				prfc_impo_expo, pbl, pusuario_autorizo, 
				pusuario_cierre, pnumero_buzon_cierre, pbuque, 
				ppuerto_origen_destino, pnombre_impo_expo, pdesc_mercancia, 
				pobservaciones);
  ELSE
    UPDATE PesajeAduana
    SET    folio_autoriza=pfolio_autoriza, num_oficio=pnum_oficio, 
			patente=ppatente, pedimento=ppedimento, clave_recinto=pclave_recinto, 
			tipo_mercancia=ptipo_mercancia, umt=pumt, cs_autorizadas=pcs_autorizadas, 
			vid=pvid, peso_pedimento=ppeso_pedimento, cs_termino=pcs_termino, 
			eta=to_date(peta,'DD/MM/YYYY HH24:MI:SS'), fecha_registro=to_date(pfecha_registro,'DD/MM/YYYY HH24:MI:SS'), fecha_registro_autoriza=to_date(pfecha_registro_autoriza,'DD/MM/YYYY HH24:MI:SS'), 
			fecha_registro_cierre=to_date(pfecha_registro_cierre,'DD/MM/YYYY HH24:MI:SS'), fecha_cierre=to_date(pfecha_cierre,'DD/MM/YYYY HH24:MI:SS'), fecha_pago=to_date(pfecha_pago,'DD/MM/YYYY HH24:MI:SS'), 
			fecha_autorizacion=to_date(pfecha_autorizacion,'DD/MM/YYYY HH24:MI:SS'), fecha_termino=to_date(pfecha_termino,'DD/MM/YYYY HH24:MI:SS'), status=pstatus, 
			excedente=pexcedente, envio=penvio, fraccion=pfraccion, 
			rfc_impo_expo=prfc_impo_expo, bl=pbl, usuario_autorizo=pusuario_autorizo, 
			usuario_cierre=pusuario_cierre, numero_buzon_cierre=pnumero_buzon_cierre, buque=pbuque, 
			puerto_origen_destino=ppuerto_origen_destino, nombre_impo_expo=pnombre_impo_expo, desc_mercancia=pdesc_mercancia, 
			observaciones=pobservaciones
    WHERE  nidDocumento=pNidDocumento;
  END IF;
  
  COMMIT;
  pTransaccion := 1;
  pMensaje := 'Terminado OK';
  dbms_output.put_line('Terminado OK');

EXCEPTION
  WHEN OTHERS THEN
    pTransaccion := 0;
    pMensaje := 'Error en  PesajeAduana_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm;
    dbms_output.put_line('Error en  PesajeAduana_InsertarModificar:' || SQLCODE || ' Mensaje: ' || sqlerrm);
END;
